class Solution {
    public int combinationSum4(int[] nums, int target) {
       //如果求组合(无序)数就是外层for循环遍历物品，内层for遍历背包
       //如果求排列(有序)数就是外层for遍历背包，内层for循环遍历物品
        int n=nums.length;
        int[] dp=new int[target+1];
        dp[0]=1;
        for (int i = 1; i <= target; i++) {
            for (int j = 0; j < n; j++) {
                if(i>=nums[j]){
                    dp[i]+=dp[i-nums[j]];
                }
            }
        }
        return dp[target];
    }
}